package br.ufscar.acumaaf.smc.activity;

import java.util.ArrayList;
import java.util.List;

import br.ufscar.acumaaf.smc.R;
import br.ufscar.acumaaf.smc.adapter.AdaptadorListaUsuarios;
import br.ufscar.acumaaf.smc.dao.UsuarioDAO;
import br.ufscar.acumaaf.smc.model.Usuario;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ListView;

public class ListaUsuario extends ListActivity{
	
	protected static final int INSERIR = 1;
	protected static final int EDITAR = 2;
	protected static final int BUSCAR = 3;
		
	private List<Usuario> listaUsuarios;
		
	public void onCreate(Bundle b){
		
		super.onCreate(b);
		//Chama o método para montar a lista de usuários cadastrados
		criaListaUsuarios();
	}
	
	//Método que busca no banco de dados todos os usuários cadastrados e cria a lista na tela
	protected void criaListaUsuarios(){
		listaUsuarios = new ArrayList<Usuario>();
		listaUsuarios = (List<Usuario>) new UsuarioDAO(this).buscarTodosUsuarios();
		setListAdapter(new AdaptadorListaUsuarios(this, listaUsuarios));
	}
	
	//Método que cria o sub-menu da tela
	public boolean onCreateOptionsMenu(Menu menu){
		super.onCreateOptionsMenu(menu);
		menu.add(0, INSERIR,0,"Inserir").setIcon(R.drawable.addusericon);
		menu.add(0, EDITAR, 0,"Editar").setIcon(R.drawable.editusericon);
		menu.add(0, BUSCAR,0, "Buscar").setIcon(R.drawable.searchusericon);
		return true;
	}
	
	//Captura o sub-menu que o usuário clicou
	public boolean onMenuItemSelected(int featureId, MenuItem item){
		switch (item.getItemId()) {
			case INSERIR:
				Intent it = new Intent("CHAMA_ACTIVITY_CADASTRO_USUARIO");
				startActivityForResult(it, 1);
			break;
			case EDITAR:
				//startActivity(new Intent("CHAMA_ACTIVITY_EDITA_USUARIO"));
			break;
			case BUSCAR:
				
			break;	
		}
		return true;
	}
	
	//Método que captura o item da lista que o usuário clicou
	protected void onListItemClick(ListView l, View v, int position, long id){
		super.onListItemClick(l, v, position, id);
		//Recupera o Usuário Selecionado
		Usuario usuario = listaUsuarios.get(position);
		Intent it = new Intent("CHAMA_ACTIVITY_EDITA_USUARIO");
		it.putExtra("codigousuario", usuario.getCodigoUsuario());
		startActivityForResult(it, 1);
	}
	
	protected void onActivityResult(int codigo, int codigoRetorno, Intent it){
		super.onActivityResult(codigo, codigoRetorno, it);
		//Quando a Activity EditaUsuario retornar, atualiza a lista de Usuários
		if(codigoRetorno == RESULT_OK){
			criaListaUsuarios();
		}
	}
}
